#ifndef __OPENGLSHADER_H__
#define __OPENGLSHADER_H__

#include "GL/glew.h"
#include "Graphics/Shader.h"
#include <map>

namespace RayFrame
{
  // TODO: design a fix attribute location binding method
  class OpenGLShader: public Shader
  {
  protected:
    friend class OpenGLShaderProgram;
    GLuint  m_ID;
    
  protected:
    DLL_DECLARE virtual void internalCreate();
    DLL_DECLARE virtual void internalDestroy();
  public:
    virtual ~OpenGLShader(){ internalDestroy(); };
  };

}

#endif
